package com.hulk.ratel.common.util;

import cn.hutool.core.util.RandomUtil;
import lombok.AccessLevel;
import lombok.Value;
import lombok.experimental.FieldDefaults;
import lombok.experimental.UtilityClass;

/**
 * @Author: hulk
 * @E-mail: 29572320@qq.com
 * @Date: Create in 2018/9/7 下午5:28
 * @Version: 1.0.0
 * @Modify by:
 * Class description
 */
@UtilityClass
@Value
@FieldDefaults(level = AccessLevel.PRIVATE)
public class SaltGenerator {

    int DEFAULT_LENGTH = 16;

    /**
     * 生成128bit 16位密钥
     * @return
     */
    public  String generate() {
        return generate(DEFAULT_LENGTH);
    }
    /**
     * 生成192bit 24位密钥
     * @return
     */
    public  String generate24() {
        return generate(24);
    }
    /**
     * 生成256bit 32位密钥
     * @return
     */
    public  String generate32() {
        return generate(32);
    }
    /**
     * 生成随机密钥
     *
     * @param size 位数
     * @return
     */
    public  String generate(int size) {
        return RandomUtil.randomString(size);
    }

}
